package com.cqut.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cqut.dto.LimitShowDTO;

public interface JudgesAppointmentMapperExtra {

	List<Map<String, Object>> getFlowStates();
	
	List<Map<String, Object>> getStates();

	List<Map<String, Object>> getList(
			@Param("start")
			int start, 
			@Param("end")
			int end,
			@Param("competeName")
			String competeName);

	long getCountOfList(
			@Param("competeName")
			String competeName);

	long findCountOfJudgesist(
			@Param("judgeName")
			String judgeName);

	List<Map<String, Object>> getJudgesList(
			@Param("start")
			int calculateStart, 
			@Param("end")
			int calculateEnd, 
			@Param("judgeName")
			String judgeName);

	int setJudges(
			@Param("stateList")
			String[] stateList, 
			@Param("judgesList")
			String[] judgesList);

	List<Map<String, String>> selectState(
			@Param("stateList")
			String[] stateList);

	List<Map<String, String>> selectJudges(
			@Param("judgesList")
			String[] judgesList);

	Map<String, Object> findMaxRaterAppointId();

	List<Map<String, Object>> getStateList(
			@Param("start")
			int calculateStart, 
			@Param("end")
			int calculateEnd, 
			@Param("stateName")
			String stateName,
			@Param("competitionId")
			String competitionId);

	long getCountOfStateList(
			@Param("stateName")
			String stateName, 
			@Param("competitionId")
			String competitionId);

	List<Map<String, Object>> getFlowList(
			@Param("start")
			int calculateStart, 
			@Param("end")
			int calculateEnd,
			@Param("comProcessId")
			String comProcessId,
			@Param("flowName")
			String flowName);

	long getCountOfFlowList(
			@Param("comProcessId")
			String comProcessId,
			@Param("flowName")
			String flowName);

	List<Map<String, Object>> getListByCom(
			@Param("competitionId")
			String[] competitionId);

	List<Map<String, Object>> getListByPro(
			@Param("comProcessIds")
			String[] comProcessIds);

	List<Map<String, Object>> getAppointJudges(
			@Param("processDetailIds")
			String[] processDetailIds);

	int deleteJudges(
			@Param("deleteJudgesIds")
			String deleteJudgesIds,
			@Param("processDetailIds")
			String[] processDetailIds);

	List<Map<String, Object>> getDetailIds(
			@Param("processIds")
			String[] processIds);
}
